package com.banyuan.lesson.stringdemo;


import java.util.Arrays;

//字符串的一些方法
public class StringFuncation {
    public static void main(String[] args) {
        //字符串的拼接
        //是编译器利用了StringBuilder进行了优化
        String s = "abc" + "123";
        System.out.println(s);

        //charAt 返回索引出的字符
        char c = s.charAt(2);

        //compareTo 比较大小 字典顺序 int返回值 负数，左小；0，一样大；正数，左边大；
        System.out.println("abc".compareTo("aac"));

        //compareToIgnoreCase 比较大小忽略大小写；
        System.out.println("abc".compareToIgnoreCase("asd"));

        //contact 相当于+；
        System.out.println("abc".concat("abw"));

        //contains 是否包含子字符串
        boolean b = "abcdefg".contains("asc");

        //判断某个字符串是否以另外一个字符串开头；
        boolean b2 = "abcdefg".startsWith("abc");

        //判断字符串是否以另外一个字符串结尾；
        boolean b3 = "abcdefg".endsWith("fg");

        //格式化，参数打印，String的静态方法 String.format

        //用系统默认的字符集进行编码；
        byte[] bytes = "abcd".getBytes();

        //返回第一次出现该字符串的位置，如果没有返回-1；
        int index = "abcdefg" .indexOf("def");

        //返回字符串最后一次出现的位置,如果没有返回-1；
        int index2 = "abcdefg" .lastIndexOf("def");

        //intern 返回该字符串的原型，不建议不如使用equals方法

        //字符串的长度是一个方法，数组的长度是一个属性；
        //空字符串的长度是0；
        System.out.println("abcdefg".length());
        System.out.println("".length());

        //isEmpty（），判断一个字符串是否为空；
        System.out.println("".isEmpty());

        //replaceAll 替换字符中的字符串；
        String s3 = "sdfafdawwwdfaasfwwwsdfawww";
        String test = s3.replaceAll("www", "qqq");
        System.out.println(test);

        //切割字符串,按照某个字符切割字符串；
        String s4 = "asdfa#dfa#fadfa#sdfa";
        String[] s5 = s4.split("#");
        System.out.println(Arrays.toString(s5));

        //截取字符串；
        String s6 = "abcdefg";
        String s7 = s6.substring(4);//从该下标开始直到字符串的结尾
        String s8 = s6.substring(2,4);//左闭右开

        //转成字符数组；
        char[] c1 = "abcdefg".toCharArray();

        //转大小写
        String upper ="abcdefg".toUpperCase();
        String lower = "abcdefg".toLowerCase();

        //干掉前后空白字符 空格 换行 制表符；
        String trim = "asdfas    asdfa".trim();

        //干掉unicode字符中的空白，jdk11优先用；
        String strip = "adfasd a  daaf".strip();

        //其他类型转换成字符串；
        String s9 = String.valueOf(123);

        //任何类型和字符串相加都会变成字符串；
        String S10 = "" + 123;

    }
}
